package com.wzdigit.wms.basic.client.response.picktask;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 拣货任务详情
 * </p>
 *
 * @author 
 * @since 2021-02-25
 */
@Data
@EqualsAndHashCode
@JsonInclude(JsonInclude.Include.NON_NULL)
@Accessors(chain = true)
public class PicktaskDtlResp implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 拣货任务明细ID
     */
    @ApiModelProperty("拣货任务明细ID")
    private Integer picktaskDtlId;

    /**
     * 拣货任务ID
     */
    @ApiModelProperty("拣货任务ID")
    private Integer picktaskHeaderId;

    /**
     * 拣货任务行号
     */
    @ApiModelProperty("拣货任务行号")
    private Integer picktaskLineNo;

    /**
     * 优先级
     */
    @ApiModelProperty("优先级")
    private Integer priority;

    /**
     * 订单预配ID
     */
    @ApiModelProperty("订单预配ID")
    private Integer gdnPreAlocId;

    /**
     * 发货单明细ID
     */
    @ApiModelProperty("发货单明细ID")
//    private Integer gdnDtlId;
    private Long docDtlId;

    /**
     * 任务下发标识
     */
    @ApiModelProperty("任务下发标识")
    private Integer dispatchFlag;

    /**
     * 任务领取人
     */
    @ApiModelProperty("任务领取人")
    private String taskReceiver;

    /**
     * 任务执行人
     */
    @ApiModelProperty("任务执行人")
    private String taskExecutor;

    /**
     * 开始拣货时间
     */
    @ApiModelProperty("开始拣货时间")
    private LocalDateTime beginPickTime;

    /**
     * 结束拣货时间
     */
    @ApiModelProperty("结束拣货时间")
    private LocalDateTime endPickTime;

    /**
     * 计划拣货数量
     */
    @ApiModelProperty("计划拣货数量")
    private BigDecimal planQty;

    /**
     * 实际拣货数量
     */
    @ApiModelProperty("实际拣货数量")
    private BigDecimal cmpQty;

    /**
     * 用户自定义字段1
     */
    @ApiModelProperty("用户自定义字段1")
    private String udf1;

    /**
     * 用户自定义字段2
     */
    @ApiModelProperty("用户自定义字段2")
    private String udf2;

    /**
     * 用户自定义字段3
     */
    @ApiModelProperty("用户自定义字段3")
    private String udf3;

    /**
     * 用户自定义字段4
     */
    @ApiModelProperty("用户自定义字段4")
    private String udf4;

    /**
     * 用户自定义字段5
     */
    @ApiModelProperty("用户自定义字段5")
    private String udf5;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String comments;

    /**
     * 状态
     */
    @ApiModelProperty("状态")
    private Integer status;


    //////////////////////////////////////////////////////////////////////////////////////
    /**
     * 物料编码
     */
    @ApiModelProperty("物料编码")
    private String materialCode;

    /**
     * 客户型号
     */
    @Deprecated
    @ApiModelProperty("客户型号")
    private String model;

    /**
     * 物料描述
     */
    @ApiModelProperty("物料描述")
    private String materialDesc;

    /**
     * 待检数量:【计划拣货数量】-【实际拣货数量】
     */
    @ApiModelProperty("待检数量:【计划拣货数量】-【实际拣货数量】")
    private BigDecimal waitCheckQty;

    /**
     * 发货单号
     */
    @ApiModelProperty("发货单号")
    private String gdnNo;

    /**
     * 行号
     */
    @ApiModelProperty("发货单行号")
    private Integer lineNo;

    /**
     * 订单号
     */
    @ApiModelProperty("订单号")
    private String poNo;

    /**
     * 客户名称
     */
    @ApiModelProperty("客户名称")
    private String customerName;

    /**
     * 参考柜号
     */
    @ApiModelProperty("参考柜号")
    private String refCntrNo;

    /**
     * 拣货任务号
     */
    @ApiModelProperty(value = "拣货任务号")
    private String picktaskNo;

    /**
     * 库区
     */
    @ApiModelProperty(value = "库区")
    private Integer zoneId;

    /**
     * 库区描述
     */
    @ApiModelProperty(value = "库区描述")
    private String zoneDesc;
}
